package com.keller.test.main.view;

import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;

import com.keller.test.R;
import com.keller.test.main.presenter.WetherPresenter;

public class MainActivity extends AppCompatActivity  implements IWetherView {
/*
    总结来说，MVP，
    所谓的
    M 就是model 层， 数据层， 数据的来源可以是本地数据库读取，网络获取等，Model用于操作数据

    V 就是View 层，就是跟界面显示想相关的控制操作

    P 就是Presenter,可以简单理解为 是  M 和  V 之间操作的桥梁。



     通常，使用mvp模式，基本上都是大型的项目，每个功能模块间耦合性都比较低。
     也使得Activity的代码仅需考虑界面上UI的变化，不再需要考虑数据的来源


   步骤：






     mvp非常适合大型的APP开发，越复杂它的优势越明显，但是如果APP代码本身很简明，mvp就有点绕弯子的感觉了。



*/

    WetherPresenter presenter;
    private ProgressDialog mDialog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mDialog = new ProgressDialog(this);
        mDialog.setTitle("请稍后...");
        presenter = new WetherPresenter(this);
        presenter.requestWetherInfo();
    }

    @Override
    public void onInfoUpdate(final String info) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(MainActivity.this,info,Toast.LENGTH_LONG).show();
            }
        });
    }

    @Override
    public void showWaitingDialog() {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                mDialog.show();
            }
        });
    }

    @Override
    public void dissmissWaitingDialog() {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                mDialog.dismiss();
            }
        });
    }
}
